home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / tex / texsrc.arc / TEX1.C < prev    next >
C/C++ Source or Header  |  1988-09-14  |  47KB  |  2,266 lines

  1. overlay "tex1"
  2. #define EXTERN extern
  3. #include "texd.h"
  4.  
  5. zshortdisplay ( p ) 
  6. integer p ; 
  7. {r_shortdisplay 
  8.   integer n ; 
  9.   while ( p > memmin ) { 
  10.     if ( ( p >= himemmin ) ) 
  11.     {
  12.       if ( p <= memend ) 
  13.       {
  14.     if ( mem [(long) p ] .hh.b0 != fontinshortd ) 
  15.     {
  16.       if ( ( mem [(long) p ] .hh.b0 < 0 ) || ( mem [(long) p ] .hh.b0 > fontmax ) ) 
  17.       printchar ( 42 ) ; 
  18.       else printesc ( hash [ 3268 + mem [(long) p ] .hh.b0 ] .v.RH ) ; 
  19.       printchar ( 32 ) ; 
  20.       fontinshortd = mem [(long) p ] .hh.b0 ; 
  21.     } 
  22.     printASCII ( mem [(long) p ] .hh.b1 ) ; 
  23.       } 
  24.     } 
  25.     else switch ( mem [(long) p ] .hh.b0 ) 
  26.     {case 0 : 
  27.     case 1 : 
  28.     case 3 : 
  29.     case 8 : 
  30.     case 4 : 
  31.     case 5 : 
  32.     case 13 : 
  33.       print ( 177 ) ; 
  34.       break ; 
  35.     case 2 : 
  36.       printchar ( 124 ) ; 
  37.       break ; 
  38.     case 10 : 
  39.       if ( mem [(long) p + 1 ] .hh .v.LH != 0 ) 
  40.       printchar ( 32 ) ; 
  41.       break ; 
  42.     case 9 : 
  43.       printchar ( 36 ) ; 
  44.       break ; 
  45.     case 6 : 
  46.       shortdisplay ( mem [(long) p + 1 ] .hh .v.RH ) ; 
  47.       break ; 
  48.     case 7 : 
  49.       {
  50.     shortdisplay ( mem [(long) p + 1 ] .hh .v.LH ) ; 
  51.     shortdisplay ( mem [(long) p + 1 ] .hh .v.RH ) ; 
  52.     n = mem [(long) p ] .hh.b1 ; 
  53.     while ( n > 0 ) { 
  54.       if ( mem [(long) p ] .hh .v.RH != 0 ) 
  55.       p = mem [(long) p ] .hh .v.RH ; 
  56.       decr ( n ) ; 
  57.     } 
  58.       } 
  59.       break ; 
  60.     default : 
  61.       ; 
  62.       break ; 
  63.     } 
  64.     p = mem [(long) p ] .hh .v.RH ; 
  65.   } 
  66. zprintfontand ( p ) 
  67. integer p ; 
  68. {r_printfontand 
  69.   if ( p > memend ) 
  70.   printesc ( 178 ) ; 
  71.   else { 
  72.     if ( ( mem [(long) p ] .hh.b0 < 0 ) || ( mem [(long) p ] .hh.b0 > fontmax ) ) 
  73.     printchar ( 42 ) ; 
  74.     else printesc ( hash [ 3268 + mem [(long) p ] .hh.b0 ] .v.RH ) ; 
  75.     printchar ( 32 ) ; 
  76.     printASCII ( mem [(long) p ] .hh.b1 ) ; 
  77.   } 
  78. zprintmark ( p ) 
  79. integer p ; 
  80. {r_printmark 
  81.   printchar ( 123 ) ; 
  82.   if ( ( p < himemmin ) || ( p > memend ) ) 
  83.   printesc ( 178 ) ; 
  84.   else showtokenlis ( mem [(long) p ] .hh .v.RH , 0 , maxprintline - 10 ) ; 
  85.   printchar ( 125 ) ; 
  86. zprintruledim ( d ) 
  87. scaled d ; 
  88. {r_printruledim 
  89.   if ( ( d == - 1073741824 ) ) 
  90.   printchar ( 42 ) ; 
  91.   else printscaled ( d ) ; 
  92. zprintglue ( d , order , s ) 
  93. scaled d ; 
  94. integer order ; 
  95. strnumber s ; 
  96. {r_printglue 
  97.   printscaled ( d ) ; 
  98.   if ( ( order < 0 ) || ( order > 3 ) ) 
  99.   print ( 179 ) ; 
  100.   else if ( order > 0 ) 
  101.   {
  102.     print ( 180 ) ; 
  103.     while ( order > 1 ) { 
  104.       printchar ( 108 ) ; 
  105.       decr ( order ) ; 
  106.     } 
  107.   } 
  108.   else if ( s != 0 ) 
  109.   print ( s ) ; 
  110. zprintspec ( p , s ) 
  111. integer p ; 
  112. strnumber s ; 
  113. {r_printspec 
  114.   if ( ( p < memmin ) || ( p >= lomemmax ) ) 
  115.   printchar ( 42 ) ; 
  116.   else { 
  117.     printscaled ( mem [(long) p + 1 ] .cint ) ; 
  118.     if ( s != 0 ) 
  119.     print ( s ) ; 
  120.     if ( mem [(long) p + 2 ] .cint != 0 ) 
  121.     {
  122.       print ( 181 ) ; 
  123.       printglue ( mem [(long) p + 2 ] .cint , mem [(long) p ] .hh.b0 , s ) ; 
  124.     } 
  125.     if ( mem [(long) p + 3 ] .cint != 0 ) 
  126.     {
  127.       print ( 182 ) ; 
  128.       printglue ( mem [(long) p + 3 ] .cint , mem [(long) p ] .hh.b1 , s ) ; 
  129.     } 
  130.   } 
  131. zprintfamandc ( p ) 
  132. halfword p ; 
  133. {r_printfamandc 
  134.   printesc ( 329 ) ; 
  135.   printint ( mem [(long) p ] .hh.b0 ) ; 
  136.   printchar ( 32 ) ; 
  137.   printASCII ( mem [(long) p ] .hh.b1 ) ; 
  138. zprintdelimit ( p ) 
  139. halfword p ; 
  140. {r_printdelimit 
  141.   integer a ; 
  142.   a = mem [(long) p ] .qqqq .b0 * 256 + mem [(long) p ] .qqqq .b1 ; 
  143.   a = a * 4096 + mem [(long) p ] .qqqq .b2 * 256 + mem [(long) p ] .qqqq .b3 ; 
  144.   if ( a < 0 ) 
  145.   printint ( a ) ; 
  146.   else printhex ( a ) ; 
  147. zprintsubsidi ( p , c ) 
  148. halfword p ; 
  149. ASCIIcode c ; 
  150. {r_printsubsidi 
  151.   if ( ( poolptr - strstart [ strptr ] ) >= depththresho ) 
  152.   {
  153.     if ( mem [(long) p ] .hh .v.RH != 0 ) 
  154.     print ( 183 ) ; 
  155.   } 
  156.   else { 
  157.     {
  158.       strpool [ poolptr ] = c ; 
  159.       incr ( poolptr ) ; 
  160.     } 
  161.     tempptr = p ; 
  162.     switch ( mem [(long) p ] .hh .v.RH ) 
  163.     {case 1 : 
  164.       {
  165.     println () ; 
  166.     printcurrent () ; 
  167.     printfamandc ( p ) ; 
  168.       } 
  169.       break ; 
  170.     case 2 : 
  171.       showinfo () ; 
  172.       break ; 
  173.     case 3 : 
  174.       if ( mem [(long) p ] .hh .v.LH == 0 ) 
  175.       {
  176.     println () ; 
  177.     printcurrent () ; 
  178.     print ( 713 ) ; 
  179.       } 
  180.       else showinfo () ; 
  181.       break ; 
  182.     default : 
  183.       ; 
  184.       break ; 
  185.     } 
  186.     decr ( poolptr ) ; 
  187.   } 
  188. zprintstyle ( c ) 
  189. integer c ; 
  190. {r_printstyle 
  191.   switch ( c / 2 ) 
  192.   {case 0 : 
  193.     printesc ( 714 ) ; 
  194.     break ; 
  195.   case 1 : 
  196.     printesc ( 715 ) ; 
  197.     break ; 
  198.   case 2 : 
  199.     printesc ( 716 ) ; 
  200.     break ; 
  201.   case 3 : 
  202.     printesc ( 717 ) ; 
  203.     break ; 
  204.   default : 
  205.     print ( 718 ) ; 
  206.     break ; 
  207.   } 
  208. zprintskippar ( n ) 
  209. integer n ; 
  210. {r_printskippar 
  211.   switch ( n ) 
  212.   {case 0 : 
  213.     printesc ( 241 ) ; 
  214.     break ; 
  215.   case 1 : 
  216.     printesc ( 242 ) ; 
  217.     break ; 
  218.   case 2 : 
  219.     printesc ( 243 ) ; 
  220.     break ; 
  221.   case 3 : 
  222.     printesc ( 244 ) ; 
  223.     break ; 
  224.   case 4 : 
  225.     printesc ( 245 ) ; 
  226.     break ; 
  227.   case 5 : 
  228.     printesc ( 246 ) ; 
  229.     break ; 
  230.   case 6 : 
  231.     printesc ( 247 ) ; 
  232.     break ; 
  233.   case 7 : 
  234.     printesc ( 248 ) ; 
  235.     break ; 
  236.   case 8 : 
  237.     printesc ( 249 ) ; 
  238.     break ; 
  239.   case 9 : 
  240.     printesc ( 250 ) ; 
  241.     break ; 
  242.   case 10 : 
  243.     printesc ( 251 ) ; 
  244.     break ; 
  245.   case 11 : 
  246.     printesc ( 252 ) ; 
  247.     break ; 
  248.   case 12 : 
  249.     printesc ( 253 ) ; 
  250.     break ; 
  251.   case 13 : 
  252.     printesc ( 254 ) ; 
  253.     break ; 
  254.   case 14 : 
  255.     printesc ( 255 ) ; 
  256.     break ; 
  257.   case 15 : 
  258.     printesc ( 256 ) ; 
  259.     break ; 
  260.   case 16 : 
  261.     printesc ( 257 ) ; 
  262.     break ; 
  263.   case 17 : 
  264.     printesc ( 258 ) ; 
  265.     break ; 
  266.   default : 
  267.     print ( 259 ) ; 
  268.     break ; 
  269.   } 
  270. zshownodelist ( p ) 
  271. integer p ; 
  272. {/* 10 */ r_shownodelist 
  273.   integer n ; 
  274.   real g ; 
  275.   if ( ( poolptr - strstart [ strptr ] ) > depththresho ) 
  276.   {
  277.     if ( p > 0 ) 
  278.     print ( 183 ) ; 
  279.     return ; 
  280.   } 
  281.   n = 0 ; 
  282.   while ( p > memmin ) { 
  283.     println () ; 
  284.     printcurrent () ; 
  285.     if ( p > memend ) 
  286.     {
  287.       print ( 184 ) ; 
  288.       return ; 
  289.     } 
  290.     incr ( n ) ; 
  291.     if ( n > breadthmax ) 
  292.     {
  293.       print ( 185 ) ; 
  294.       return ; 
  295.     } 
  296.     if ( ( p >= himemmin ) ) 
  297.     printfontand ( p ) ; 
  298.     else switch ( mem [(long) p ] .hh.b0 ) 
  299.     {case 0 : 
  300.     case 1 : 
  301.     case 13 : 
  302.       {
  303.     if ( mem [(long) p ] .hh.b0 == 0 ) 
  304.     printesc ( 104 ) ; 
  305.     else if ( mem [(long) p ] .hh.b0 == 1 ) 
  306.     printesc ( 118 ) ; 
  307.     else printesc ( 187 ) ; 
  308.     print ( 188 ) ; 
  309.     printscaled ( mem [(long) p + 3 ] .cint ) ; 
  310.     printchar ( 43 ) ; 
  311.     printscaled ( mem [(long) p + 2 ] .cint ) ; 
  312.     print ( 189 ) ; 
  313.     printscaled ( mem [(long) p + 1 ] .cint ) ; 
  314.     if ( mem [(long) p ] .hh.b0 == 13 ) 
  315.     {
  316.       if ( mem [(long) p ] .hh.b1 != 0 ) 
  317.       {
  318.         print ( 155 ) ; 
  319.         printint ( mem [(long) p ] .hh.b1 + 1 ) ; 
  320.         print ( 191 ) ; 
  321.       } 
  322.       if ( mem [(long) p + 6 ] .cint != 0 ) 
  323.       {
  324.         print ( 192 ) ; 
  325.         printglue ( mem [(long) p + 6 ] .cint , mem [(long) p + 5 ] .hh.b1 , 0 ) ; 
  326.       } 
  327.       if ( mem [(long) p + 4 ] .cint != 0 ) 
  328.       {
  329.         print ( 193 ) ; 
  330.         printglue ( mem [(long) p + 4 ] .cint , mem [(long) p + 5 ] .hh.b0 , 0 ) ; 
  331.       } 
  332.     } 
  333.     else { 
  334.       g = mem [(long) p + 6 ] .gr ; 
  335.       if ( ( g != 0.0 ) && ( mem [(long) p + 5 ] .hh.b0 != 0 ) ) 
  336.       {
  337.         print ( 194 ) ; 
  338.         if ( mem [(long) p + 5 ] .hh.b0 == 2 ) 
  339.         print ( 195 ) ; 
  340.         if ( fabs ( g ) > 20000.0 ) 
  341.         {
  342.           if ( g > 0.0 ) 
  343.           printchar ( 62 ) ; 
  344.           else print ( 196 ) ; 
  345.           printglue ( 20000 * 65536 , mem [(long) p + 5 ] .hh.b1 , 0 ) ; 
  346.         } 
  347.         else printglue ( round ( 65536 * g ) , mem [(long) p + 5 ] .hh.b1 , 0 ) 
  348.         ; 
  349.       } 
  350.       if ( mem [(long) p + 4 ] .cint != 0 ) 
  351.       {
  352.         print ( 190 ) ; 
  353.         printscaled ( mem [(long) p + 4 ] .cint ) ; 
  354.       } 
  355.     } 
  356.     {
  357.       {
  358.         strpool [ poolptr ] = 46 ; 
  359.         incr ( poolptr ) ; 
  360.       } 
  361.       shownodelist ( mem [(long) p + 5 ] .hh .v.RH ) ; 
  362.